package cn.edu.cxcyzx.dao;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.edu.cxcyzx.entity.InsertReport;
import cn.edu.cxcyzx.entity.MemberPOJO;
import cn.edu.cxcyzx.entity.Project;
import cn.edu.cxcyzx.entity.ProjectCheck;
import cn.edu.cxcyzx.entity.ProjectInfo;
import cn.edu.cxcyzx.entity.ProjectPOJO;

public interface ProjectDao {
	
	public void insertApplyPro(Project project);
	
	public void update(Project project);
	
	public List<ProjectInfo> getAllPro();
	
	public ProjectInfo getProjectInfo(int projectId);
	
	public String getAnalyseReport(int projectId);
	
	public String getProjectReport(int projectId);
	
	public void update_insertReport(InsertReport report);
	
	public void update_memberNum(@Param("memberNum")int memberNum,@Param("groupId")String groupId);
	
	public void update_finishTime(@Param("update_finishTime")Date update_finishTime,@Param("projectId")int projectId );
	
	public Project getProjectBy_projectId(int projectId);
	
	public void update_projectStatus(@Param("projectId")int projectId,@Param("projectStatus")int projectStatus);
	
	public List<MemberPOJO> getMemberBy_leaderId(String leaderId);
	/**
	 * 项目成员减一
	 * @param groupId
	 */
	public void minus_OneMember(String groupId);
	/**
	 * 查询延期项目
	 * @return
	 */
	public List<ProjectPOJO> getDalayPro();
	/**
	 * 查询未完成的项目信息
	 * @return
	 */
	public List<ProjectInfo> getProgressPro();
	/**
	 * 查询需要查房的项目信息
	 * @param timestamp
	 * @return
	 */
	public List<Project> getCheckPro(Date begin_date);

	
	public String[] getProjectName(String roomId);
	
	public Project getProBy_groupId(String groupId);
	/**
	 * 查询最小的上传需求分析时间（项目状态==0除外）
	 * @return
	 */
	public Date getMin_analyseDate();
	/**
	 * 更新项目的Gitee信息
	 * @param projectId
	 * @param gitee_proName
	 * @param gitee_pro_full_name
	 */
	public void updateGitee(@Param("projectId")int projectId,@Param("gitee_proName")String gitee_proName,@Param("gitee_pro_full_name")String gitee_pro_full_name);
	/**
	 * 插入analyseReport
	 * @param projectId
	 * @param projectStatus
	 * @param analyseReport
	 * @param analyseDate
	 */
	public void updateAnalyse(@Param("projectId")int projectId,@Param("projectStatus")int projectStatus,@Param("analyseReport")String analyseReport,@Param("analyseDate")Date analyseDate );
	/**
	 * 更新gitee信息
	 * @param gitee_proName
	 * @param gitee_full_name
	 */
}
